package com.kuyun.base.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.kuyun.base.base.Page;
import com.kuyun.base.model.BaseRole;
import com.kuyun.base.model.ZtreeBean;

/**
 * 
 * @author 史梁辰
 * 
 * @date 2016-6-19下午9:31:32
 * 
 */
public interface BaseRoleMapper {
	/**
	 * 新增角色
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:33:10
	 * 
	 * @param role
	 * @return
	 */
	public int insertRole(BaseRole role);

	/**
	 * 修改角色
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:33:51
	 * 
	 * @param role
	 * @return
	 */
	public int updateRole(BaseRole role);

	/**
	 * 删除角色
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:34:18
	 * 
	 * @param role
	 * @return
	 */
	public int deleteRole(String id);

	/**
	 * 获取角色数据列表
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:35:39
	 * 
	 * @param role
	 * @return
	 */
	public List<BaseRole> findRoles(@Param("page") Page<BaseRole> page,
			@Param("role") BaseRole role);

	/**
	 * 根据id获取角色信息
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-19下午9:36:37
	 * 
	 * @param id
	 * @return
	 */
	public BaseRole getRoleById(String id);

	/**
	 * 根据角色id删除用户与角色关系
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-6-20下午11:33:46
	 * 
	 * @param id
	 * @return
	 */
	public int deleteUser_Role_ByRoleId(String id);

	/**
	 * 获取角色总数
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-11下午5:31:00
	 * 
	 * @param role
	 * @return
	 */
	public int getRoleCount(@Param("role") BaseRole role);

	/**
	 * 检查角色名重复
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-11下午5:29:53
	 * 
	 * @param name
	 * @param id
	 * @return
	 */
	public int checkRoleName(@Param("name") String name, @Param("id") String id);

	/**
	 * 获取角色树
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-13下午8:48:37
	 * 
	 * @param id
	 * @return
	 */
	public List<ZtreeBean> getRoleTree(String id);

	/**
	 * 保存用户角色
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-13下午9:49:59
	 * 
	 * @param id
	 * @param userId
	 * @param roleId
	 * @return
	 */
	public int saveUserRole(@Param("list") List<Map<String, String>> list);
	/**
	 * 获取权限树
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-13下午8:48:37
	 * 
	 * @param id
	 * @return
	 */
	public List<ZtreeBean> getPriTree(String id);

	/**
	 * 保存角色权限
	 * 
	 * @author 史梁辰
	 * 
	 * @date 2016-7-13下午9:49:59
	 * 
	 * @param id
	 * @param userId
	 * @param roleId
	 * @return
	 */
	public int saveRolePri(@Param("list") List<Map<String, String>> list);
	/**
	 * 根据角色id删除角色权限关系
	 * @author 史梁辰
	 *
	 * @date 2016-7-13下午11:12:51
	 *
	 * @param id
	 * @return
	 */
	public int deletePriByRoleId(String id);
}
